1. Field of the Invention
The present invention relates to the field of establishing communications between a computer system and input/output devices, such as one-way cable modems. Specifically, the present invention provides a method and apparatus for communicating with input/output device drivers.
2. Description of Related Art
Currently, most home personal computers (clients) are connecting with the Internet and other on-line services using the public telephone network. Most often, data is transferred using Transmission Control Protocol/Internet Protocol (TCP/IP) implemented over such protocols as the Point-to-Point Protocol (PPP) or the Serial Line Internet protocol (SLIP). PPP and SLIP allow clients to become part of a TCP/IP network (such as the internet) using the public telephone network and either an analog modem or an Integrated Services Digital Network (ISDN) device. Clients connect to a network by "dialing-up" a Point of Presence (POP), or "headend", server, which then assigns the client an IP address.
The public telephone network has a switched point-to-point architecture and only offers relatively low bandwidth as it was originally designed for analog voice communication. Thus, it does not scale well to the delivery of broadband data such as multimedia. As a result, there are several efforts to create a broadband data delivery infrastructure for client applications. Such an infrastructure, when combined with the increasingly powerful clients that are now available, will enable the delivery of rich multimedia programming to the home.
Broadband data delivery may be accomplished over a variety of different delivery infrastructures. Of these, perhaps the most promising is the infrastructure currently used to deliver cable television. Recent advancements in radio frequency modulation and demodulation technology, along with a large base of cable television subscribers, has made cable television service providers a strong candidate for becoming the preferred provider of broadband services to the home. In the broadband network architecture, a client will be continuously connected to the broadband network and will be in communication with one or more headend servers at all times.
However, as the cable television network was originally intended only for transmitting data from a headend server located at the cable television service provider's site to one or more subscribers/users (i.e., the network was designed for a one-to-many transmission of information), no provision was made for receiving data from the equipment (i.e., clients) located at the users' locations. Thus, the broadband network architecture only provides for the delivery, and not the receipt, of data. Moreover, although certain broadband networks are becoming equipped with the capability of two way communications, in broadband networks without this capability, no data can be sent back from client to the headend.
A solution has been proposed to achieve two-way communication of data using the existing cable television infrastructure. "Downstream data", defined to be data sent from a headend server to a client, is transferred over coaxial cable from the headend server into the home and to the user's client PC, while "upstream data", defined to be data sent from the client to the headend server, is transferred over the public telephone network. The asymmetrical allocation of upstream/downstream bandwidth is acceptable for most applications as the majority of users requires a larger downstream bandwidth compared to the upstream bandwidth (i.e., most users are "data consumers" rather than "data generators").
In operation, downstream data is received by a client using a "one-way" cable modem while upstream data is transmitted by an analog modem or an ISDN device, over the public telephone network, to the headend server via a Plain Old Telephone Service (POTS) server at the headend office. The POTS server forwards any upstream data sent by the client to the headend server for appropriate action (e.g., providing domain name server (DNS) services, simple mail transfer protocol (SMTP) services, gateway or proxy services, etc.). Without the public telephone network, there is no upstream data path as the client cannot transmit any information to the headend server through the cable modem.
The client and the headend server communicate using TCP/IP. Data is transmitted in packets, where packets are defined as a block of data with appropriate transmission data attached in the form of a header and footer to be sent or received over a network. Downstream and upstream data are sent using the Ethernet standard, as defined by the Institute of Electrical and Electronics Engineers (IEEE) 802.3, modulated for transmission over: (1) coaxial cable using the cable modem; or, (2) a telephone line using the analog modem or the ISDN device and PPP or SLIP protocols.
In order for the client to use the cable modem for communication, the cable modem is installed as an Ethernet adapter in the client, and the client is configured as a TCP/IP network machine. All network traffic appears as digital Ethernet data to the client. However, the data received by the cable modem is transmitted over a coaxial cable network using the analog quadrature ampliture modulation with 6 bit encoding (QAM64) techniques. The QAM64 modulated data transmitted by the headend server is demodulated to digital Ethernet data by the radio frequency (R/F) circuitry of the cable modem.
The upstream and downstream data sent and received by the client over the separate devices are to be treated as a single communications session. However, current operating systems do not provide for the necessary control and communication-interfaces needed for both the upstream network device and the downstream network device. Present operating systems are geared towards controlling network devices that provide both upstream and downstream traffic.
Therefore, an architecture needs to be provided for the above-identified situation where a client PC has separate upstream and downstream device such that the operating system of the client PC can interface with the separate devices. It would also be desirable for this architecture to support different upstream and downstream devices based on technologies other than analog modems, digital adapters, and cable modems. For example, the architecture should be usable with satellite receivers as the one-way data device.
In addition, for computer operating systems which do not allow applications to directly interface with device drivers, a solution needs to be provided.